{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "90773be8",
   "metadata": {},
   "source": [
    "### 灰度图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0a84607d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(414, 500)"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import cv2#读取格式BGR\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "img = cv2.imread('cat.jpg')\n",
    "img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)\n",
    "img_gray.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7e312e2b",
   "metadata": {},
   "outputs": [],
   "source": [
    "cv2.imshow(\"img_gray\",img_gray)\n",
    "cv2.waitKey(5000)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "da2e9853",
   "metadata": {},
   "source": [
    "### HSV"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cbc5b31c",
   "metadata": {},
   "source": [
    "- H-色调（主波长）\n",
    "- S-饱和度（纯度/颜色的阴影）\n",
    "- V值（强度）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "0d375487",
   "metadata": {},
   "outputs": [],
   "source": [
    "hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)\n",
    "cv2.imshow('hsv',hsv)\n",
    "cv2.waitKey(1000)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4e887b6e",
   "metadata": {},
   "source": [
    "### 图像阈值"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4c4db4ff",
   "metadata": {},
   "source": [
    "ret,dst = cv2.threshold(src,thresh,maxval,type)  ret：指定的thresh  dst： 目标图像\n",
    "- src:输入图，只能输入单通道图像，通常为灰度图\n",
    "- dst：输入图\n",
    "- thresh:阈值\n",
    "- maxval:当像素值超过了阈值或小于阈值，根据type来决定所赋予的值\n",
    "- type:二值化操作类型，包含以下5种：cv2.THRESH_BINARY;cv2.THRESH_BINARY_INV;cv2.THRESH_TRUNC;cv2.THRESH_TOZERO;CV2.THRESH_TOZERO_INV\n",
    "- cv2.THRESH_BINARY:超过阈值部分取最大值，否则取0\n",
    "- cv2.THRESH_BINARY_INV:THRESH_BINARY的反转\n",
    "- cv2.THRESH_TRUNC;大于阈值部分设为阈值，否则不变\n",
    "- cv2.THRESH_TOZERO;大于阈值部分不改变，否则设为0\n",
    "- CV2.THRESH_TOZERO_INV;THRESH_TOAERO\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "5d3cf983",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 6 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "127.0\n"
     ]
    }
   ],
   "source": [
    "ret,thresh1 = cv2.threshold(img_gray,127,255,cv2.THRESH_BINARY)\n",
    "ret,thresh2 = cv2.threshold(img_gray,127,255,cv2.THRESH_BINARY_INV)\n",
    "ret,thresh3 = cv2.threshold(img_gray,127,255,cv2.THRESH_TRUNC)\n",
    "ret,thresh4 = cv2.threshold(img_gray,127,255,cv2.THRESH_TOZERO)\n",
    "ret,thresh5 = cv2.threshold(img_gray,127,255,cv2.THRESH_TOZERO_INV)\n",
    "\n",
    "titles = ['Original Image','BINARY','BINARY_INV','TRUNC','TOZERO','TOZERO_INV']\n",
    "images = [img,thresh1,thresh2,thresh3,thresh4,thresh5]\n",
    "for i in range(6):\n",
    "    plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')\n",
    "    plt.title(titles[i])\n",
    "    plt.xticks([]),plt.yticks([])\n",
    "plt.show()\n",
    "print(ret)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9108c11c",
   "metadata": {},
   "source": [
    "### 图像平滑（卷积核）"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c59846a0",
   "metadata": {},
   "source": [
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "668cb52c",
   "metadata": {},
   "outputs": [],
   "source": [
    "img= cv2.imread('lenaNoise.png')\n",
    "cv2.imshow('img',img)\n",
    "cv2.waitKey(1000)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "9e5b16cd",
   "metadata": {},
   "outputs": [],
   "source": [
    "#均值滤波\n",
    "#简单的平均卷积操作\n",
    "blur  = cv2.blur(img,(3,3))# 卷积核的大小\n",
    "cv2.imshow('blur',blur)\n",
    "cv2.waitKey(1000)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "234169fc",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 方框滤波，基本和均值一样，可以选择归一化，容易越界\n",
    "box = cv2.boxFilter(img,-1,(3,3),normalize=False)# -1表示一致\n",
    "cv2.imshow('box',box)\n",
    "cv2.waitKey(1000)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "c4ccc271",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 高斯滤波，高斯模糊的卷积核里的数值是满足高斯分布，相当于更重视中间的\n",
    "aussian = cv2.GaussianBlur(img,(5,5),1)\n",
    "cv2.imshow('aussian',aussian)\n",
    "cv2.waitKey(1000)\n",
    "cv2.destroyAllWindows()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "b8b17191",
   "metadata": {},
   "outputs": [],
   "source": [
    "#中值滤波，相当于用中值代替\n",
    "median = cv2.medianBlur(img,5)\n",
    "cv2.imshow('median',median)\n",
    "cv2.waitKey(1000)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "3a7697f6",
   "metadata": {},
   "outputs": [],
   "source": [
    "#展示所有的\n",
    "res = np.hstack((blur,aussian,median))\n",
    "cv2.imshow('median vs average',res)\n",
    "cv2.waitKey(1000)\n",
    "cv2.destroyAllWindows()\n",
    "#res.shape\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ceb18b2c",
   "metadata": {},
   "source": [
    "### 形态学-腐蚀操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "ae9f822c",
   "metadata": {},
   "outputs": [],
   "source": [
    "img = cv2.imread('dige.png')\n",
    "\n",
    "cv2.imshow('img',img)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "644fc8bf",
   "metadata": {},
   "outputs": [],
   "source": [
    "kernel = np.ones((3,3),np.uint8)\n",
    "erosion = cv2.erode(img,kernel,iterations = 1)\n",
    "cv2.imshow('erosion',erosion,)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "a45ca3bd",
   "metadata": {},
   "outputs": [],
   "source": [
    "pie = cv2.imread('pie.png')\n",
    "cv2.imshow('pie',pie)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "d8653a59",
   "metadata": {},
   "outputs": [],
   "source": [
    "kernel = np.ones((30,30),np.uint8)\n",
    "erosion_1 = cv2.erode(pie,kernel,iterations = 1)\n",
    "erosion_2 = cv2.erode(pie,kernel,iterations =2)\n",
    "erosion_3 = cv2.erode(pie,kernel,iterations = 3)\n",
    "res = np.hstack((erosion_1,erosion_2,erosion_3))\n",
    "cv2.imshow('res',res)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "88a08f67",
   "metadata": {},
   "source": [
    "### 形态学-膨胀操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "b9259456",
   "metadata": {},
   "outputs": [],
   "source": [
    "img = cv2.imread('dige.png')\n",
    "cv2.imshow('img',img)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "7955ae48",
   "metadata": {},
   "outputs": [],
   "source": [
    "kernel = np.ones((3,3),np.uint8)\n",
    "dige_erosion = cv2.erode(img,kernel,iterations=1)# 先腐蚀\n",
    "cv2.imshow(\"erosion\",erosion)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "7022d902",
   "metadata": {},
   "outputs": [],
   "source": [
    "kernel = np.ones((3,3),np.uint8)\n",
    "dige_dilate = cv2.dilate(dige_erosion,kernel,iterations = 1)\n",
    "\n",
    "cv2.imshow('dilate',dige_dilate)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "575c39ac",
   "metadata": {},
   "outputs": [],
   "source": [
    "pie =cv2.imread('pie.png')# iterations表示腐蚀或膨胀的次数\n",
    "\n",
    "kernel =np.ones((30,30),np.uint8)\n",
    "dilate_1 = cv2.dilate(pie,kernel,iterations = 1)\n",
    "dilate_2 = cv2.dilate(pie,kernel,iterations = 2)\n",
    "dilate_3 = cv2.dilate(pie,kernel,iterations = 3)\n",
    "res = np.hstack((dilate_1,dilate_2,dilate_3))\n",
    "cv2.imshow('res',res)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7e4cde2c",
   "metadata": {},
   "source": [
    "### 开运算闭运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "938828a6",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 开运算： 先腐蚀，再膨胀\n",
    "img = cv2.imread('dige.png')\n",
    "kernel = np.ones((5,5),np.uint8)\n",
    "opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)\n",
    "\n",
    "cv2.imshow('opening',opening)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "929bec7e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 闭运算：先膨胀，再腐蚀\n",
    "img = cv2.imread('dige.png')\n",
    "\n",
    "kernel = np.ones((5,5),np.uint8)\n",
    "closing = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)\n",
    "cv2.imshow('closing',closing)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bfdb73dc",
   "metadata": {},
   "source": [
    "### 梯度运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "d5ce6f18",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 梯度=膨胀-腐蚀\n",
    "pie = cv2.imread('pie.png')\n",
    "kernel = np.ones((7,7),np.uint8)\n",
    "dilate = cv2.dilate(pie,kernel,iterations = 5)\n",
    "erosion = cv2.erode(pie,kernel,iterations = 5)\n",
    "res = np.hstack((dilate,erosion))\n",
    "\n",
    "cv2.imshow(\"res\",res)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "af6e0be6",
   "metadata": {},
   "outputs": [],
   "source": [
    "gradient = cv2.morphologyEx(pie,cv2.MORPH_GRADIENT,kernel)\n",
    "\n",
    "cv2.imshow('gradient',gradient)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ce81204b",
   "metadata": {},
   "source": [
    "### 礼帽与黑帽"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e4f45a5d",
   "metadata": {},
   "source": [
    "- 礼帽 = 原始输入-开运算结果\n",
    "- 黑帽 = 闭运算 - 原始输入"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "9c9b7971",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 礼帽\n",
    "img = cv2.imread('dige.png')\n",
    "tophat = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)\n",
    "cv2.imshow('tophat',tophat)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "144653a7",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 黑帽\n",
    "img = cv2.imread('dige.png')\n",
    "blackhat = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)\n",
    "cv2.imshow('blackhat',blackhat)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c9992589",
   "metadata": {},
   "source": [
    "### 图像梯度-Sobel算子"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a8ae4471",
   "metadata": {},
   "source": [
    "![title](sobel_1.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "id": "694dc95d",
   "metadata": {},
   "outputs": [],
   "source": [
    "img = cv2.imread('pie.png',cv2.IMREAD_GRAYSCALE)\n",
    "cv2.imshow('img',img)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eb273a82",
   "metadata": {},
   "source": [
    "### dst = cv2.Sobel(src,ddepth,dx,dy,ksize)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd4d199c",
   "metadata": {},
   "source": [
    "- ddepth:图像的深度\n",
    "- dx和dy分别表示水平和竖直方向\n",
    "- ksize是Sobel算子的大小"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "id": "e5c51953",
   "metadata": {},
   "outputs": [],
   "source": [
    "def cv_show(img,name):\n",
    "    cv2.imshow(name,img)\n",
    "    cv2.waitKey()\n",
    "    cv2.destroyAllWindows()\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "94ad0527",
   "metadata": {},
   "outputs": [],
   "source": [
    "sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)\n",
    "cv_show(sobelx,'sobelx')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "567865e1",
   "metadata": {},
   "source": [
    "白到黑是正数，黑到白就是负数了，所有的负数会被截断成0，所以要取绝对值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "id": "46dd8456",
   "metadata": {},
   "outputs": [],
   "source": [
    "sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)\n",
    "sobelx = cv2.convertScaleAbs(sobelx)\n",
    "cv_show(sobelx,'sobelx')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "fec97ec0",
   "metadata": {},
   "outputs": [],
   "source": [
    "sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=3)\n",
    "sobely = cv2.convertScaleAbs(sobely)\n",
    "cv_show(sobely,'sobely')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "963dd081",
   "metadata": {},
   "source": [
    "分别计算x和y,再求和"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "36ea766e",
   "metadata": {},
   "outputs": [],
   "source": [
    "sobelxy = cv2.addWeighted(sobelx,0.5,sobely,0.5,0)\n",
    "cv_show(sobelxy,'sobelxy')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "397234db",
   "metadata": {},
   "source": [
    "不建议直接计算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "id": "4c89b0bd",
   "metadata": {},
   "outputs": [],
   "source": [
    "sobelxy = cv2.Sobel(img,cv2.CV_64F,1,1,ksize=3)\n",
    "sobelxy = cv2.convertScaleAbs(sobelxy)\n",
    "cv_show(sobelxy,'sobelxy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "id": "91b9e41f",
   "metadata": {},
   "outputs": [],
   "source": [
    "img = cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)\n",
    "cv_show(img,'img')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "id": "ddbce966",
   "metadata": {},
   "outputs": [],
   "source": [
    "img = cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)\n",
    "\n",
    "sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)\n",
    "sobelx = cv2.convertScaleAbs(sobelx)\n",
    "sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=3)\n",
    "sobely = cv2.convertScaleAbs(sobely)\n",
    "sobelxy = cv2.addWeighted(sobelx,0.5,sobely,0.5,0)\n",
    "cv_show(sobelxy,'sobelxy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "id": "b5db5811",
   "metadata": {},
   "outputs": [],
   "source": [
    "img = cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)\n",
    "\n",
    "sobelxy = cv2.Sobel(img,cv2.CV_64F,1,1,ksize=3)\n",
    "sobelxy = cv2.convertScaleAbs(sobelxy)\n",
    "cv_show(sobelxy,'sobelxy')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "76c05254",
   "metadata": {},
   "source": [
    "### 图像梯度-Scharr算子"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "32a68f6b",
   "metadata": {},
   "source": [
    "![title](scharr.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5238795b",
   "metadata": {},
   "source": [
    "### 图像梯度-laplacian算子"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d2b66093",
   "metadata": {},
   "source": [
    "![title](l.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "id": "753e7262",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 不同算子的差异\n",
    "img = cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)\n",
    "sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)\n",
    "sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=3)\n",
    "sobelx = cv2.convertScaleAbs(sobelx)   \n",
    "sobely = cv2.convertScaleAbs(sobely)  \n",
    "sobelxy =  cv2.addWeighted(sobelx,0.5,sobely,0.5,0) \n",
    "\n",
    "scharrx = cv2.Scharr(img,cv2.CV_64F,1,0)\n",
    "scharry = cv2.Scharr(img,cv2.CV_64F,0,1)\n",
    "scharrx = cv2.convertScaleAbs(scharrx)\n",
    "scharry = cv2.convertScaleAbs(scharry)\n",
    "scharrxy =  cv2.addWeighted(scharrx,0.5,scharry,0.5,0)\n",
    "\n",
    "\n",
    "laplacian = cv2.Laplacian(img,cv2.CV_64F)\n",
    "laplacian = cv2.convertScaleAbs(laplacian)\n",
    "\n",
    "res = np.hstack((sobelxy,scharrxy,laplacian))\n",
    "cv_show(res,'res')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "id": "3e76900f",
   "metadata": {},
   "outputs": [],
   "source": [
    "img = cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)\n",
    "cv_show(img,'img')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "77927a5d",
   "metadata": {},
   "source": [
    "### Canny边缘检测"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7d84b476",
   "metadata": {},
   "source": [
    "- 1.使用高斯滤波器，以平滑图像，滤除噪声\n",
    "- 2.计算图像中每个像素点的梯度强度和方向\n",
    "- 3.应用非极大值（Non-Maxium Supperssion）抑制，以消除边缘检测带来的杂散响应\n",
    "- 4.应用双阈值（Double-Threshold）检测来确定真实的和潜在的边缘\n",
    "- 5.通过抑制孤立的弱边缘最终完成边缘检测"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "88d2f854",
   "metadata": {},
   "source": [
    "#### 1：高斯滤波器"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "89678aaa",
   "metadata": {},
   "source": [
    "#### 2：梯度和方向"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "36f700ce",
   "metadata": {},
   "source": [
    "![title](canny_2.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "195aab99",
   "metadata": {},
   "source": [
    "#### 3：非极大值抑制"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dd9d5aea",
   "metadata": {},
   "source": [
    "![title](canny_3.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2ef70151",
   "metadata": {},
   "source": [
    "![title](canny_6.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "373782c4",
   "metadata": {},
   "source": [
    "#### 4:双阈值检测"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b3c608bd",
   "metadata": {},
   "source": [
    "![title](canny_5.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "id": "d886d300",
   "metadata": {},
   "outputs": [],
   "source": [
    "img = cv2.imread(\"lena.jpg\",cv2.IMREAD_GRAYSCALE)\n",
    "v1 = cv2.Canny(img,80,150)\n",
    "v2 = cv2.Canny(img,50,100)\n",
    "res = np.hstack((v1,v2))\n",
    "cv_show(res,'res')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "id": "f622ae6c",
   "metadata": {},
   "outputs": [],
   "source": [
    "img = cv2.imread(\"car.png\",cv2.IMREAD_GRAYSCALE)\n",
    "\n",
    "v1=cv2.Canny(img,120,250)\n",
    "v2=cv2.Canny(img,50,100)\n",
    "\n",
    "res = np.hstack((v1,v2))\n",
    "cv_show(res,'res')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a88666ee",
   "metadata": {},
   "source": [
    "### 图像金字塔"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b18ff5a",
   "metadata": {},
   "source": [
    "- 高斯金字塔\n",
    "- laplacian金字塔"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0f770eac",
   "metadata": {},
   "source": [
    "![title](Pyramid_1.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "49adbee6",
   "metadata": {},
   "source": [
    "#### 高斯金字塔：向下采样法（缩小）"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "08df1f46",
   "metadata": {},
   "source": [
    "![title](Pyramid_2.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "88f4541b",
   "metadata": {},
   "source": [
    "#### 高斯金字塔：向上采样法（放大）"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e04149f5",
   "metadata": {},
   "source": [
    "![title](Pyramid_3.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "id": "1cf6bd4a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(442, 340, 3)\n"
     ]
    }
   ],
   "source": [
    "img=cv2.imread('AM.png')\n",
    "cv_show(img,\"img\")\n",
    "print(img.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "id": "29afab41",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(884, 680, 3)\n"
     ]
    }
   ],
   "source": [
    "up=cv2.pyrUp(img)\n",
    "cv_show(up,'up')\n",
    "print(up.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "id": "11a348fa",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(221, 170, 3)\n"
     ]
    }
   ],
   "source": [
    "down=cv2.pyrDown(img)\n",
    "cv_show(down,'down')\n",
    "print(down.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "id": "4e66bc2f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1768, 1360, 3)\n"
     ]
    }
   ],
   "source": [
    "up2=cv2.pyrUp(up)\n",
    "cv_show(up2,\"up2\")\n",
    "print(up2.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "id": "b0f52250",
   "metadata": {},
   "outputs": [],
   "source": [
    "up=cv2.pyrUp(img)\n",
    "up_down=cv2.pyrDown(up)\n",
    "cv_show(up_down,'up_down')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "id": "7e11dc66",
   "metadata": {},
   "outputs": [],
   "source": [
    "cv_show(np.hstack((img,up_down)),'up_down')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "id": "a0c1f745",
   "metadata": {},
   "outputs": [],
   "source": [
    "up=cv2.pyrUp(img)\n",
    "up_down=cv2.pyrDown(up)\n",
    "cv_show(img-up_down,'img-up_down')#相减"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bf5bbd36",
   "metadata": {},
   "source": [
    "#### laplacian金字塔"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "de99b638",
   "metadata": {},
   "source": [
    "![title](Pyramid_4.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "id": "1403a3d5",
   "metadata": {},
   "outputs": [],
   "source": [
    "down=cv2.pyrDown(img)\n",
    "down_up=cv2.pyrUp(down)\n",
    "l_1=img-down_up\n",
    "cv_show(l_1,'l_1')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ec0c6485",
   "metadata": {},
   "source": [
    "### 图像轮廓"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6548cbfd",
   "metadata": {},
   "source": [
    "cv2.findCoutours(img,mode,method)\n",
    "\n",
    "mode:轮廓检索模式\n",
    "- RETR_EXTERNAL:只检索最外面的轮廓\n",
    "- RETR_LIST：检索所有轮廓，并将其保存到一条链表中；\n",
    "- RETR_CCOMP:检索所有轮廓，并将他们组织为两层：顶层是各部分的外部边界，第二层是空洞的边界。\n",
    "- RETR_TREE:检索所有的轮廓，并重构嵌套轮廓的整个层次；\n",
    "\n",
    "method：轮廓逼近方法\n",
    "- CHAIN_APPROX_NONE:以Freeman链码的方式输出轮廓，所有其他方法输出多边形（顶点的序列）\n",
    "- CHAIN_APPROX_SIMPLE:压缩水平的、垂直的和斜的部分，也就是函数只保留他们的终点部分"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cf1bc446",
   "metadata": {},
   "source": [
    "![title](chain.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9faca5a2",
   "metadata": {},
   "source": [
    "为了更高的准确率，使用二值图像"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 189,
   "id": "c748598b",
   "metadata": {},
   "outputs": [],
   "source": [
    "img = cv2.imread('contours.png')\n",
    "gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)\n",
    "ret,thresh = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)# 二值操作\n",
    "cv_show(thresh,'thresh')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 190,
   "id": "1c38450f",
   "metadata": {},
   "outputs": [],
   "source": [
    "contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)\n",
    "# 返回的是轮廓和层级\n",
    "#np.array(contours).shape\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "098d79bd",
   "metadata": {},
   "source": [
    "#### 绘制轮廓"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 191,
   "id": "a3d955d8",
   "metadata": {},
   "outputs": [],
   "source": [
    "cv_show(img,'img')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 192,
   "id": "eb01095f",
   "metadata": {},
   "outputs": [],
   "source": [
    "#传入绘制图像，轮廓、轮廓索引、颜色模式、线条厚度，注意需要copy，要不原图会变\n",
    "draw_img = img.copy()\n",
    "res = cv2.drawContours(draw_img,contours,-1,(0,0,255),2)\n",
    "cv_show(res,'res')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 193,
   "id": "64a398b3",
   "metadata": {},
   "outputs": [],
   "source": [
    "draw_img = img.copy()\n",
    "res = cv2.drawContours(draw_img,contours,0,(0,0,255),2)\n",
    "cv_show(res,'res')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9c62fd6f",
   "metadata": {},
   "source": [
    "#### 轮廓特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 180,
   "id": "719a0d25",
   "metadata": {},
   "outputs": [],
   "source": [
    "cnt = contours[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 182,
   "id": "2a9a9f30",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.5"
      ]
     },
     "execution_count": 182,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#面积\n",
    "cv2.contourArea(cnt)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 183,
   "id": "2e484026",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.414213538169861"
      ]
     },
     "execution_count": 183,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 周长，True表示闭合\n",
    "cv2.arcLength(cnt,True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b03ff01d",
   "metadata": {},
   "source": [
    "#### 轮廓近似"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d4c0ce0f",
   "metadata": {},
   "source": [
    "![title](contours3.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 186,
   "id": "c26dae83",
   "metadata": {},
   "outputs": [],
   "source": [
    "img = cv2.imread('contours2.png')\n",
    "gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)\n",
    "ret,thresh = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)\n",
    "contours,hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)\n",
    "cnt = contours[0]\n",
    "\n",
    "draw_img = img.copy()\n",
    "res = cv2.drawContours(draw_img,[cnt],-1,(0,0,255),2)\n",
    "cv_show(res,'res')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 188,
   "id": "40ad08a0",
   "metadata": {},
   "outputs": [],
   "source": [
    "epsilon = 0.15*cv2.arcLength(cnt,True)\n",
    "approx = cv2.approxPolyDP(cnt,epsilon,True)#近似函数\n",
    "\n",
    "draw_img = img.copy()\n",
    "res = cv2.drawContours(draw_img,[approx],-1,(0,0,255),2)\n",
    "cv_show(res,'res')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "17364686",
   "metadata": {},
   "source": [
    "#### 边界矩形"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "36f4cf0d",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
